home *** CD-ROM | disk | FTP | other *** search
/ Visual Cafe 3 / Visual Cafe 3.ISO / Vcafe / Main.bin / StringListModel.java < prev    next >
Text File  |  1998-08-01  |  5KB  |  247 lines

  1. package com.symantec.itools.swing.models;
  2.  
  3. import com.sun.java.swing.AbstractListModel;
  4. import java.util.Vector;
  5. import java.util.Enumeration;
  6. import java.io.Serializable;
  7.  
  8. public class StringListModel
  9.     extends AbstractListModel
  10.     implements Serializable
  11. {
  12.     protected Vector delegate = new Vector();
  13.  
  14.     //
  15.     // Items property
  16.     //
  17.  
  18.     public String[] getItems()
  19.     {
  20.         return (String[])toArray();
  21.     }
  22.  
  23.     public void setItems(String[] items)
  24.     {
  25.         Vector newDelegate = new Vector(items.length);
  26.  
  27.         for(int i = 0; i < items.length; i++)
  28.             newDelegate.addElement(items[i]);
  29.  
  30.         int oldSize = delegate.size();
  31.         int newSize = items.length;
  32.         
  33.         delegate = newDelegate;
  34.         
  35.         if (oldSize > newSize)
  36.             fireIntervalRemoved(this, newSize, oldSize-1);
  37.         else if (oldSize < newSize)
  38.             fireIntervalAdded(this, oldSize, newSize-1);
  39.         
  40.         fireContentsChanged(this, -1, -1);
  41.     }
  42.  
  43.     //
  44.     // ListModel methods
  45.     //
  46.  
  47.     public int getSize()
  48.     {
  49.         return delegate.size();
  50.     }
  51.  
  52.     public Object getElementAt(int index)
  53.     {
  54.         return delegate.elementAt(index);
  55.     }
  56.  
  57.     //
  58.     // Vector methods
  59.     //
  60.  
  61.     public void copyInto(Object anArray[])
  62.     {
  63.         delegate.copyInto(anArray);
  64.     }
  65.  
  66.     public void trimToSize()
  67.     {
  68.         delegate.trimToSize();
  69.     }
  70.  
  71.     public void ensureCapacity(int minCapacity)
  72.     {
  73.         delegate.ensureCapacity(minCapacity);
  74.     }
  75.  
  76.     public void setSize(int newSize)
  77.     {
  78.         int oldSize = delegate.size();
  79.         delegate.setSize(newSize);
  80.         if (oldSize > newSize)
  81.             fireIntervalRemoved(this, newSize, oldSize-1);
  82.         else if (oldSize < newSize)
  83.             fireIntervalAdded(this, oldSize, newSize-1);
  84.     }
  85.  
  86.     public int capacity()
  87.     {
  88.         return delegate.capacity();
  89.     }
  90.  
  91.     public int size()
  92.     {
  93.         return delegate.size();
  94.     }
  95.  
  96.     public boolean isEmpty()
  97.     {
  98.         return delegate.isEmpty();
  99.     }
  100.  
  101.     public Enumeration elements()
  102.     {
  103.         return delegate.elements();
  104.     }
  105.  
  106.     public boolean contains(Object elem)
  107.     {
  108.         return delegate.contains(elem);
  109.     }
  110.  
  111.     public int indexOf(Object elem)
  112.     {
  113.         return delegate.indexOf(elem);
  114.     }
  115.  
  116.     public int indexOf(Object elem, int index)
  117.     {
  118.         return delegate.indexOf(elem, index);
  119.     }
  120.  
  121.     public int lastIndexOf(Object elem)
  122.     {
  123.         return delegate.lastIndexOf(elem);
  124.     }
  125.  
  126.     public int lastIndexOf(Object elem, int index)
  127.     {
  128.         return delegate.lastIndexOf(elem, index);
  129.     }
  130.  
  131.     public Object elementAt(int index)
  132.     {
  133.         return delegate.elementAt(index);
  134.     }
  135.  
  136.     public Object firstElement()
  137.     {
  138.         return delegate.firstElement();
  139.     }
  140.  
  141.     public Object lastElement()
  142.     {
  143.         return delegate.lastElement();
  144.     }
  145.  
  146.     public void setElementAt(Object obj, int index)
  147.     {
  148.         delegate.setElementAt(obj, index);
  149.         fireContentsChanged(this, index, index);
  150.     }
  151.  
  152.     public void removeElementAt(int index)
  153.     {
  154.         delegate.removeElementAt(index);
  155.         fireIntervalRemoved(this, index, index);
  156.     }
  157.  
  158.     public void insertElementAt(Object obj, int index)
  159.     {
  160.         delegate.insertElementAt(obj, index);
  161.         fireIntervalAdded(this, index, index);
  162.     }
  163.  
  164.     public void addElement(Object obj)
  165.     {
  166.         int index = delegate.size();
  167.         delegate.addElement(obj);
  168.         fireIntervalAdded(this, index, index);
  169.     }
  170.  
  171.     public boolean removeElement(Object obj)
  172.     {
  173.         int index = indexOf(obj);
  174.         boolean rv = delegate.removeElement(obj);
  175.         if (index > 0)
  176.             fireIntervalRemoved(this, index, index);
  177.         return rv;
  178.     }
  179.  
  180.     public void removeAllElements()
  181.     {
  182.         int index1 = delegate.size()-1;
  183.         delegate.removeAllElements();
  184.         if (index1 >= 0)
  185.             fireIntervalRemoved(this, 0, index1);
  186.     }
  187.  
  188.     public String toString()
  189.     {
  190.         return delegate.toString();
  191.     }
  192.  
  193.     //
  194.     // The remaining methods are included for compatibility with the
  195.     // JDK1.2 Vector class.
  196.     //
  197.  
  198.     public Object[] toArray()
  199.     {
  200.         String[] rv = new String[delegate.size()];
  201.         delegate.copyInto(rv);
  202.         return rv;
  203.     }
  204.  
  205.     public Object get(int index)
  206.     {
  207.         return delegate.elementAt(index);
  208.     }
  209.  
  210.     public Object set(int index, Object element)
  211.     {
  212.         Object rv = delegate.elementAt(index);
  213.         delegate.setElementAt(element, index);
  214.         fireContentsChanged(this, index, index);
  215.         return rv;
  216.     }
  217.  
  218.     public void add(int index, Object element)
  219.     {
  220.         delegate.insertElementAt(element, index);
  221.         fireIntervalAdded(this, index, index);
  222.     }
  223.  
  224.     public Object remove(int index)
  225.     {
  226.         Object rv = delegate.elementAt(index);
  227.         delegate.removeElementAt(index);
  228.         fireIntervalRemoved(this, index, index);
  229.         return rv;
  230.     }
  231.  
  232.     public void clear()
  233.     {
  234.         int index1 = delegate.size()-1;
  235.         delegate.removeAllElements();
  236.         if (index1 >= 0)
  237.             fireIntervalRemoved(this, 0, index1);
  238.     }
  239.  
  240.     public void removeRange(int fromIndex, int toIndex)
  241.     {
  242.         for (int i = toIndex; i >= fromIndex; i--)
  243.             delegate.removeElementAt(i);
  244.         fireIntervalRemoved(this, fromIndex, toIndex);
  245.     }
  246. }
  247.